<?php

/**
 * Класс сущности торрента
 *
 * @author Gennadiy Kozlenko
 */
class TorrentEntry {
   
   /**
    * Идентификатор торрента
    *
    * @var int
    */
   var $idTorrent;
   
   /**
    * Сущность видео
    *
    * @var VideoEntry
    */
   var $videoEntry;
   
   /**
    * Идентификатор ресурса
    * 
    * @var int
    */
   var $idSource;
   
   /**
    * Ссылка на информацию о раздаче
    *
    * @var string
    */
   var $link;
   
   /**
    * Ссылка на торрент файл
    * 
    * @var string
    */
   var $torrent;
   
   /**
    * Название раздачи
    *
    * @var string
    */
   var $title;
   
   /**
    * Размер
    *
    * @var string
    */
   var $size;
   
   /**
    * Формат видео
    *
    * @var string
    */
   var $format;
   
   /**
    * Видео кодек
    *
    * @var string
    */
   var $videoCodec;
   
   /**
    * Аудио кодек
    *
    * @var string
    */
   var $audioCodec;
   
   /**
    * Перевод
    *
    * @var string
    */
   var $translate;
   
   /**
    * Качество
    *
    * @var string
    */
   var $quality;
   
   /**
    * Дополнительная информация о видео кодеках
    *
    * @var string
    */
   var $video;
   
   /**
    * Дополнительная информация о аудио кодеках
    *
    * @var string
    */
   var $audio;
   
   /**
    * Screenshots
    * @var array
    */
   var $screenshots = array();
   
   /**
    * Установка идентификатора торрента
    *
    * @param int $id
    */
   function setIdTorrent($id) {
      $this->idTorrent = $id;
   }
   
   /**
    * Получение идентификатора торрента
    *
    * @return int
    */
   function getIdTorrent() {
      return $this->idTorrent;
   }
   
   /**
    * Установка идентификатора ресурса
    *
    * @param int $id
    */
   function setIdSource($id) {
      $this->idSource = $id;
   }
   
   /**
    * Получение идентификатора ресурса
    *
    * @return int
    */
   function getIdSource() {
      return $this->idSource;
   }
   
   /**
    * Установка ссылки на информацию о раздаче
    *
    * @param string $id
    */
   function setLink($link) {
      $this->link = $link;
   }
   
   /**
    * Получение ссылки на информацию о раздаче
    *
    * @return string
    */
   function getLink() {
      return $this->link;
   }
   
   /**
    * Установка ссылки на торрент файл
    *
    * @param string $id
    */
   function setTorrent($torrent) {
      $this->torrent = $torrent;
   }
   
   /**
    * Получение ссылки на торрент файл
    *
    * @return string
    */
   function getTorrent() {
      return $this->torrent;
   }
   
   /**
    * Установка названия
    *
    * @param string $title
    */
   function setTitle($title) {
      $this->title = $title;
   }
   
   /**
    * Получение названия
    *
    * @return string
    */
   function getTitle() {
      return $this->title;
   }
   
   /**
    * Установка размера
    *
    * @param string $size
    */
   function setSize($size) {
      $this->size = $size;
   }
   
   /**
    * Получение размера
    *
    * @return string
    */
   function getSize() {
      return $this->size;
   }
   
   /**
    * Установка формата
    *
    * @param string $format
    */
   function setFormat($format) {
      $this->format = $format;
   }
   
   /**
    * Получение формата
    *
    * @return string
    */
   function getFormat() {
      return $this->format;
   }
   
   /**
    * Установка перевода
    *
    * @param string $translate
    */
   function setTranslate($translate) {
      $this->translate = $translate;
   }
   
   /**
    * Получение перевода
    *
    * @return string
    */
   function getTranslate() {
      return $this->translate;
   }
   
   /**
    * Установка качества
    *
    * @param string $quality
    */
   function setQuality($quality) {
      $this->quality = $quality;
   }
   
   /**
    * Получение качества
    *
    * @return string
    */
   function getQuality() {
      return $this->quality;
   }
   
   /**
    * Установка видео кодека
    *
    * @param string $codec
    */
   function setVideoCodec($codec) {
      $this->videoCodec = $codec;
   }
   
   /**
    * Получение видео кодека
    *
    * @return string
    */
   function getVideoCodec() {
      return $this->videoCodec;
   }
   
   /**
    * Установка аудио кодека
    *
    * @param string $codec
    */
   function setAudioCodec($codec) {
      $this->audioCodec = $codec;
   }
   
   /**
    * Получение аудио кодека
    *
    * @return string
    */
   function getAudioCodec() {
      return $this->audioCodec;
   }
   
   /**
    * Установка дополнительной информации по видео кодеку
    *
    * @param string $video
    */
   function setVideo($video) {
      $this->video = $video;
   }
   
   /**
    * Получение дополнительной информации по видео кодеку
    *
    * @return string
    */
   function getVideo() {
      return $this->video;
   }
   
   /**
    * Установка дополнительной информации по аудио кодеку
    *
    * @param string $audio
    */
   function setAudio($audio) {
      $this->audio = $audio;
   }
   
   /**
    * Получение дополнительной информации по аудио кодеку
    *
    * @return string
    */
   function getAudio() {
      return $this->audio;
   }
   
   /**
    * Получение хеша ссылки
    * 
    * @return string
    */
   function getLinkHash() {
      return md5($this->link);
   }
   
   /**
    * Set screenshots
    * @param array $screenshots
    */
   function setScreenshots($screenshots) {
       $this->screenshots = $screenshots;
   }
   
   /**
    * Add screenshot
    * @param string $link
    * @param string $image
    */
   function addScreenshot($link, $image) {
       array_push($this->screenshots, array(
           'link' => $link,
           'image' => $image
       ));
   }
   
   /**
    * Clean screenshots
    */
   function cleanScreenshots() {
       $this->screenshots = array();
   }
   
   /**
    * Get screenshots
    */
   function getScreenshots() {
       return $this->screenshots;
   }
   
}
